
#include "iostream"
#include "vector"
#include "unordered_map"
#include "unordered_set"
#include "algorithm"
#include "string"
#include "list"
#include "string.h"

class OneLoop {
public:
    int y,m;
    bool is_run(int y){
        if(y%400==0){
            return true;
        }
        if(y%100==0){
            return false;
        }
        if(y%4==0){
            return true;
        }
        return false;
    }
    int year_day_cnt(int year){
        if(is_run(year)){
            return 366;
        }else{
            return 365;
        }
    }
    int month_day_cnt(int y,int month){
        if(month==2){
            if(is_run(y)){
                return 29;
            }else{
                return 28;
            }
        }
        switch (month) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                return 31;
            case 4:
            case 6:
            case 9:
            case 11:
                return 30;
        }
        return 0;
    }
    bool run(
    ) {
        if(std::cin>>y>>m){

        }else{
            return false;
        }
        int day_cnt=0;
        for(int i=1;i<y;i++){
            day_cnt+= year_day_cnt(i);
        }
        for(int i=1;i<m;i++){
            day_cnt+= month_day_cnt(y,i);
        }
        int md= month_day_cnt(y,m);

        printf("Calendar %d - %02d\n"
               "---------------------\n"
               "Su Mo Tu We Th Fr Sa\n"
               "---------------------\n",y,m);

        int a=day_cnt%7;
        a++;
        a%=7;
        int print_cnt=0;
        for (int i = 0; i < a; ++i) {
//            if(print_cnt%7!=0){
//                printf(" ");
//            }
            print_cnt++;
            printf("   ");
            if(print_cnt%7==0){
                printf("\n");
            }
        }
        for(int i=1;i<=md;i++){
//            if(print_cnt%7!=0){
//                printf(" ");
//            }
            print_cnt++;
            printf("%2d ",i);
            if(print_cnt%7==0){
                printf("\n");
            }
        }
        if(print_cnt%7!=0){
            printf("\n");
        }
        printf("---------------------\n");
        return true;
    }
};

class Solution {
public:
    void run() {

        bool first = true;
        int a, b, c, d, e;
//        std::cin >> a;
        while (1) {
            OneLoop l;
            if (!l.run()) {
                return;
            }
            a--;
        }


    }
};

int main() {
//    bool cur_num= true;
    Solution().run();
    return 0;
}

